<?php
/**
 * Created by PhpStorm.
 * User: 小蛮哼哼哼
 * Email: 243194993@qq.com
 * Date: 2022/3/19
 * Time: 17:40
 * motto: 现在的努力是为了小时候吹过的牛逼！
 */

namespace app\common\lib\map;

use think\Exception;

class Base
{
    protected function __getData($url)
    {
        return file_get_contents($url);
    }

    /**
     *  curl get请求
     * @param string $url
     * @param array $header
     * @return bool|string
     * @throws Exception
     */
    protected function __get_url(string $url = "", array $header = [])
    {
        if (empty($header)) {
            $header = array(
                'Accept: application/json',
            );
        }
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url); //设置抓取的url
        curl_setopt($curl, CURLOPT_HEADER, 0); //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_TIMEOUT, 1); // 超时设置,以秒为单位
        // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500); // 超时设置，以毫秒为单位
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // 设置请求头
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置获取的信息以文件流的形式返回，而不是直接输出。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        $data = curl_exec($curl);//执行命令
        // 显示错误信息
        if (curl_error($curl)) {
            throw new Exception("Error: " . curl_error($curl));
        } else {
            // 打印返回的内容
            curl_close($curl);
            return $data;
        }
    }

    protected function __post_url(string $url = "", string $postdata = "", array $header = [])
    {
        if (empty($header)) {
            $header = array(
                'Accept: application/json',
            );
        }

        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //设置获取的信息以文件流的形式返回，而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // 超时设置
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        // 超时设置，以毫秒为单位
        // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
        // 设置请求头
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
        //执行命令
        $data = curl_exec($curl);
        // 显示错误信息
        if (curl_error($curl)) {
            throw new Exception("Error: " . curl_error($curl));
        } else {
            // 打印返回的内容
            curl_close($curl);
            return $data;
        }
    }
}